package com.fulin.thread.semaphore;

/**
 * 这个例子重复的说明了，串行执行不一定比并行执行效率要低，当任务量不是特别高的时候，达不到百万次，
 * 串行是比并行的效率要高的
 * @author fulin16
 *
 */
public class ConcurrencyTest {
	private static final long count = 10000l;
	
	public static void main(String[] args) throws InterruptedException {
		concurrency();
		serial();
	}
	
	private static void concurrency() throws InterruptedException{
		long start = System.currentTimeMillis();
		Thread thread = new Thread(new Runnable(){
			@Override
			public void run(){
				int a = 0;
				for(long i = 0;i<count;i++){
					a += 5;
				}
			}
		});
		
		thread.start();
		int b = 0;
		for(long i = 0;i<count;i++){
			b --;
		}	
		long time = System.currentTimeMillis() - start;
		thread.join();
		System.out.println("concurrency : "+time + "ms,b="+b);
	}
	
	private static void serial(){
		long start = System.currentTimeMillis();
		int a = 0;
		for(long i = 0;i < count ; i++){
			a += 5;
		}
		int b = 0;
		for(long i = 0; i < count ; i++){
			b --;
		}
		long time = System.currentTimeMillis() - start;
		System.out.println("serial : "+ time + "ms,b="+b+",a="+a);
	}
	
}
